1. Field of the Invention
The present invention relates to databases. More specifically, the present invention relates to a method and an apparatus for facilitating role-based cryptographic key management for a database.
2. Related Art
Businesses have a vested interest in protecting sensitive information. Customers and clients are generally reluctant to do business with organizations that have a weak record of protecting their data. One existing technique for protecting sensitive data is to encrypt the sensitive data so that only individuals or systems that have the corresponding decryption keys can decrypt the data. However, encryption and decryption operations are computationally expensive, which can create a significant computational burden if large amounts of data are involved. Moreover, more secure encryption/decryption techniques tend to involve expensive, in terms of time and computer resources, encryption and decryption operations.
In cases where this sensitive information is stored in databases that are accessed by many individuals, management of cryptographic keys is extremely problematic. One way to allow many individuals to access sensitive data is to give them all copies of the same encryption/decryption key. However, this is problematic for a number of reasons. If a person is removed from a job where they have access to the data and the encryption/decryption keys, then all of the data must be encrypted with a new key and copies of the new key must be issued to everyone who requires access to the sensitive data. Furthermore, when more copies of the encryption/decryption keys are distributed, it becomes more likely that a copy of one of the keys will fall into the wrong hands.
A better way to secure sensitive data is to issue every user a different encryption/decryption key. As users are granted access to sensitive data, the key that was used to encrypt/decrypt the data (the data key) can then be wrapped with the users' public keys. If a user then wishes to access the data, the user can then unwrap the data key with their private key. Under this technique, revoking a user's access to the data is as simple as removing the copy of the data key that is wrapped with the user's public key.
A major drawback to this encryption/decryption technique is that it does not scale well with a large number of users. In order for an administrator to grant access to a large number of users, the administrator must grant access to each user one at a time. Furthermore, if the data key is ever changed, the new data key must then be rewrapped with a user key for every user who requires access to the data.
Hence, what is needed is a method for maintaining cryptographic keys without the problems described above.